FooComponent = function(config) {

    // Privatne varijable
    var privateVariable = '';

    // Defaultna konfiguracija
    Ext.apply(this, {
        title : 'Naziv'
    });

    // Poziv konstruktora nadklase
    FooComponent.superclass.constructor.apply(this, [config]);

    // Ovdje idu public metode
    this.publicMetoda = function(){};

    // Ovdje dodati subscribe na evente definirane u komponenti. Objekt mora biti kreiran pa ovo mora doći poslje poziva konstruktora.
    this.on('componentEventName', function(param) {

    }, this);

    // Ovdje dodati subscribe na custom evente.
    this.subscribe('customEventName', function(params) {

    }, this);

};

Ext.extend(FooComponent, Ext.grid.GridPanel, {

    // Ovdje se može overide-ati metode nadklase
    onRender : function() {

    },

    // Mogu se dodati i custom metode
    customMethod : function() {
    }

});

Ext.reg('papirusFooComponent', FooComponent);